<

TextSelectionテーマの移行

まとめ

ThemeData外観を制御するプロパティ マテリアル ウィジェットで選択したテキストが に移動されました 彼ら自身TextSelectionTheme。これらのプロパティには以下が含まれますcursorColortextSelectionColor、 とtextSelectionHandleColor。これらのデフォルトは マテリアルに合わせてプロパティも変更されました 設計仕様。

コンテクスト

より大きな規模の一部としてマテリアルテーマの更新、 新しいものを導入しましたテキスト選択のテーマ選択したテキストのプロパティを指定するために使用されますTextFieldSelectableTextウィジェット。 これらは、次のいくつかのトップレベル プロパティを置き換えます。ThemeDataマテリアルに一致するようにデフォルト値を更新します 設計仕様。このドキュメントでは、その方法について説明します アプリケーションはこの新しい API に移行できます。

移行ガイド

現在次のプロパティを使用している場合は、ThemeData新しいものを使用するには更新する必要があります。 同等のプロパティThemeData.textSelectionTheme:

ThemeData.cursorColor TextSelectionThemeData.cursorColor
ThemeData.textSelectionColor TextSelectionThemeData.selectionColor
ThemeData.textSelectionHandleColor TextSelectionThemeData.selectionHandleColor


移行前のコード:

ThemeData(
  cursorColor: Colors.red,
  textSelectionColor: Colors.green,
  textSelectionHandleColor: Colors.blue,
)

移行後のコード:

ThemeData(
  textSelectionTheme: TextSelectionThemeData(
    cursorColor: Colors.red,
    selectionColor: Colors.green,
    selectionHandleColor: Colors.blue,
  )
)

デフォルトの変更

これらのプロパティを明示的に使用していない場合は、 ただし、以前に使用されていたデフォルトの色に依存します テキストを選択するには、新しいフィールドを追加できます。ThemeDataアプリを古いデフォルトに戻すには 示されているように:

// Old defaults for a light theme
ThemeData(
  textSelectionTheme: TextSelectionThemeData(
    cursorColor: const Color.fromRGBO(66, 133, 244, 1.0),
    selectionColor: const Color(0xff90caf9),
    selectionHandleColor: const Color(0xff64b5f6),
  )
)
// Old defaults for a dark theme
ThemeData(
  textSelectionTheme: TextSelectionThemeData(
    cursorColor: const Color.fromRGBO(66, 133, 244, 1.0),
    selectionColor: const Color(0xff64ffda),
    selectionHandleColor: const Color(0xff1de9b6),
  )
)

新しいデフォルトで問題ない場合は、 しかし、ゴールデン ファイル テストに失敗した場合、 を使用してマスター ゴールデン ファイルを更新できます。 次のコマンド:

$ flutter test --update-goldens

タイムライン

リリースされたバージョン: 1.23.0-4.0.pre
安定版リリース: 2.0.0

参考文献

API ドキュメント:

  • TextSelectionThemeData
  • ThemeData

関連する PR:

  • PR 62014: TextSelectionTheme のサポート